// 1. 引入依赖
import * as multer from 'multer'
import { Request } from 'express';
import { handlePath } from '../utils'

// TODO 配置 multer对象
const storage = multer.diskStorage({
  // *设置存储路径，限制图片格式
  destination: function (req: Request, file: any, cb: any) {
    if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png' || file.mimetype==='image/gif') {
      cb(null, handlePath('../../public/avatar'))
    } else {
      // 限制其他文件上传类型
      cb({ error: '上传失败，仅支持 jpg/png/gif 格式的图片！' })
    }
  },
  // *文件存储名称
  filename: function (req: Request, file: any, cb: any) {
    // 将图片名称分割为数组，截取图片的后缀
    const fileFormat = file.originalname.split('.')
    // 自定义图片名称
    cb(null, Date.now() + '.' + fileFormat[fileFormat.length - 1])
  }
})

// TODO 添加配置
const multerConfig = multer({
  storage,
  limits: { fileSize: 2097152 } // 2M
})

export {
  multerConfig
}